/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersect = function(nums1, nums2) {
    const map = {};
    for (let i = 0; i < nums1.length; i++) {
        let mapElement = map[nums1[i]];
        if(mapElement){
            map[nums1[i]] += 1
        }else{
            map[nums1[i]] = 1;
        }
    }
    const arr = [];
    for (let i = 0; i < nums2.length; i++) {
        let mapElement = map[nums2[i]];
        if(mapElement&&mapElement>0){
            map[nums2[i]] -= 1;
            arr.push(nums2[i]);
        }
    }
    return arr;
};

console.log(intersect([1,2,2,1]
    , [2,2]));